﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using KC.Enums.Admin;
using KC.Framework.Tenant;
using KC.Framework;
using KC.DTO.Core;

namespace KC.DTO.Admin
{
    [Serializable, DataContract(IsReference = true)]
    public class SendTenantUserDTO : EntityBaseDTO
    {
        public SendTenantUserDTO()
        {
            Version = Framework.Tenant.TenantVersion.Standard;
            CloudType = CloudType.Azure;
            OwnApplications = new List<SendApplcationDTO>();
        }
        [DataMember]
        public string UserId { get; set; }

        [DataMember]
        public string ApplicationId { get; set; }
        //[DataMember]
        //public string ApplicationName { get; set; }
        [DataMember]
        public string MemberId { get; set; }
        [DataMember]
        public string DisplayName { get; set; }
        [DataMember]
        public string Signature { get; set; }
        [DataMember]
        public string ContactPhone { get; set; }
        [DataMember]
        public string ContactEmail { get; set; }
        [DataMember]
        public string ContactName { get; set; }
        [DataMember]
        public bool IsEnterprise { get; set; }
        [DataMember]
        public int FinancialInstitutionType { get; set; }
        [DataMember]
        public TenantVersion Version { get; set; }
        [DataMember]
        public CloudType CloudType { get; set; }
        [DataMember]
        public string OwnDomainName { get; set; }
        [DataMember]
        public DomainLevel OwnDomainLevel { get; set; }
        [DataMember]
        public string NickName { get; set; }
        [DataMember]
        public List<SendApplcationDTO> OwnApplications { get; set; } 
    }

    [Serializable, DataContract(IsReference = true)]
    public class SendApplcationDTO : EntityBaseDTO
    {
        [DataMember]
        public string ApplicationId { get; set; }
        [DataMember]
        public string ApplicationDomain { get; set; }
        [DataMember]
        public string ApplicationName { get; set; }
    }
}
